/*********************上传模块*********************/
import axios from "axios";
import qs from 'qs'
import serviceConfig from "@/service/config";


/***
 * 上传照片头像
 * @param formdata FormData对象,建议包含属性如下:
 *          photo 二进制图片
 *          email 账户名-邮箱验证
 */
export function uploadPhoto(formdata){
    return axios({
        url:serviceConfig.baseUrl+"/userDetail/POST/update/photo",
        method:"POST",
        data:formdata,
    })
}

/**
 * 获取用户头像
 * @param email 账户名称-邮箱号
 */
export function downloadPhoto(email){
    return axios({
        url:serviceConfig.baseUrl+"/userDetail/GET/userdetailphoto",
        method:"GET",
        params:{
            email:email
        },
        responseType:'arraybuffer'
    });
}


/**
 * 文件上传操作
 * @param formdata FormData对象
 */
export function uploadFile(formdata){
    return axios({
        headers: { 'Content-Type': 'multipart/form-data' },
        url: serviceConfig.baseUrl+'/upload/file',
        method: 'POST',
        data: formdata,
    })
}

/**
 * 文件删除操作
 * @param email 操作账户-邮箱号
 * @param url 被删除文件的远程链接地址
 */
export  function deleteFile(email,url){
    return axios({
        url:serviceConfig.baseUrl+"/upload/remove",
        method:"POST",
        data:qs.stringify({
            email:email,
            url:url,
        })
    })
}


/**
 * 文件下载操作
 * @param email 邮箱号
 * @param url 文件链接
 */
export function downloadFile(email,url){
    return axios({
        url:serviceConfig.baseUrl+"/upload/download",
        method:"GET",
        responseType:"blob",
        params:{email:email,url:url}
    })
}

/**
 * 多文件下载操作
 * @param email
 * @param urls
 */
export function downloadMultipFileAsZip(email,urls){
    return axios({
        url:serviceConfig.baseUrl+"/upload/download/multip/zip",
        method:"POST",
        responseType:"blob",
        data:qs.stringify({email:email,urls:urls}, { indices: false })
    })
}